iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

學習原因:

作為軟體工程師最基本的能力就是程式能力,程式語言有很多種。在自動化測試,目前比較常用的是 Python / Javascript / Java。程式語言的基礎都差不多,先挑一種入門就好,這裡主要會使用 Python 作例子,目前亦是市場上較多公司選用的, 語法 簡單,跟英文寫法相似,對新手比較友善。後面搭配相對成熟的測試框架 PyTest 作介紹。

語法:程式語言中表達意思的規範。不同的程式語言都會有不同的規範,不用死記硬背,因為背也沒用,會不斷被更新的,所以用到的時候再 google 或查官方文件即可。

學習目標:

  • 認識變數 variable,型別 variable type 和運算子 operator
  • 可寫簡單的運算程式
  • 可自建函式 function

環境設定

  1. 請先下載並安裝 Python

  2. 開發環境 (Integrated Development Environment IDE) :

    建議使用:

    • PyCharm Community (免費版) / Professional (付費版)
    • VSCode

    我個人習慣使用 PyCharm,所以後續部分內容會應用 PyCharm 講解,如目前沒有個人偏好,可先跟著使用 PyCharm。

寫程式語言的必須要知道的基本概念:

  1. 程式檔

    程式檔在不同語言都會有不同的副檔名,設定正確才能執行,像 Python 的程式檔需要是 .py

    簡單先寫個程式檔來執行吧,簡單建立一個程式檔命為 **hello_world.py**

    # 應用 # 可標示單行註解 (Comment),一般用來寫相關的描述
    # 符號到該行結尾之間的敘述並不會被執行
    
    # 在 **終端機 (Console)** 印出 () 內的字句
    print("Hello World")  
    

    Hello World 會是讓所有工程師出現共鳴的字句,因為是學習任何一種程式語言的第一步就是印出 Hello World。簡單的內容除了學習怎樣印出結果 (Output),也是用來確認程式 環境建置 是否正確。

  2. 變數 Variable

    變數是一個容器用來儲存不同的資料,這個資料是可以改變的。

    counter = 0
    print(counter) # 可以用 print() 列印變數的值
    
    counter = 1
    # 使用 f"" 可列印出含有文字和變數的內容,變數需要用 {} 標示
    print(f"Counter: {counter}")  
    

    Output:

    0
    Counter: 1
    
  3. 型別 Type:

    變數的型別有很多種,用來存儲不同類型的數據。

    • 常用的基本型別

      • 數值型別:
        • int (整數 Integer)
        • float (浮點數 Float):可理解為有小數
        • bool (布林值 Boolean): 只有 True / False 2 個數值
      • 字串型別:
        • str (字串 String):需要用引號標示為字串,可用單引號 () , 雙引號 (‘’) 來標示單行字串,或用三個單引號 (’’’) 標示多行字串,字串首尾必須用雙同的引號。
      • 容器型別:
        • list 串列, tuple 序對, set 集合, dict 字典
        • (這個部分會留在後面的篇章再詳說)

      Python 的變數沒有固定型別,可以隨時根據內容改變:

      a = 123
      # type() 為內建 function,可以取得 variable 的型別
      print(type(a))
      
      a = "abc"
      print(type(a))
      
      a = True
      print(type(a))
      
      a = 1.2
      print(type(a))
      

      Output:

      <class 'int'> # 表示類型為 integer
      <class 'str'> # 表示類型為 string
      <class 'bool'> # 表示類型為 boolean
      <class 'float'> # 表示類型為 float
      
  4. 運算子 Operator

    可以透過使用 運算子 作數據處理,運算子有很多類型,以下列出常用的四種:

    • 算術 Operator:

      • 加 (+) ,減 (-) ,乘 (*) ,除 (/)
      • 整數除法 (//):得到的結果為 int 的型別,小數部分直接捨去,並非四捨五入。
      • 餘數 (%):取得相除以後的餘數
      • 次方 (**): a ** b 即 a 的 b 次方
      result = 1 + 2
      print(f"1 + 2 = {result}")
      
      result = 2 - 1
      print(f"2 - 1 = {result}")
      
      result = 2 * 3
      print(f"2 * 3 = {result}")
      
      result = 5 / 2
      print(f"5 / 2 = {result}")
      
      result = 5 // 2
      print(f"5 // 2 = {result}")
      
      result = 5 % 2
      print(f"5 % 2 = {result}")
      
      result = 2 ** 3
      print(f"2 ** 3 = {result}")
      

      Output:

      1 + 2 = 3
      2 - 1 = 1
      2 * 3 = 6
      5 / 2 = 2.5
      5 // 2 = 2
      5 % 2 = 1
      2 ** 3 = 8
      

      應用算術的 Operator 的時候,要注意變數的型別,像是 String 跟 Integer 是不能相加的。但 Python 有個很特別的地方是字串可以被整數相乘,日後針對有字數限制的欄位測試,這可以簡單造出測試資料,非常實用。

      print("ABC" + 3) #Error
      print("A" * 4) # Output: AAAA
      
    • 比較 Operator:

      • 大於 (>)、小於 (<)、大於等於 (>=)、小於等於 (<=)、相等於 (==)、不等於 (!=)
      • 用於比較相同的型別的值
      print(f"5 > 2: {5 > 2}")
      print(f"2 != 2: {2 != 2}")
      

      Output:

      5 > 2: True
      2 != 2: False
      
    • 指派 Operator

      • 最常用的是 =, 像之前應用變數的時候,指派數值給變數 (I.e. counter = 0)
      • 然後可以搭配算術 Operation 使用
        • += : 給予的值會與變數本身的值相加。即 a += b 意思會是 a = a + b
        • 還有 -=, *=, /=, //=, %= 都是類似的意思。
    • 邏輯 Operator

      • and : 是為交集的判斷

        a b a and b

        True | True | True | 當 a 和 b 都是 True 的時候結果為 True |
        True | False | False | 只要其中一個是 False 都會是 False |
        False | True | False | 同上|
        False | False | False | 同上|

      • or : 是為聯集的判斷

        | a | b | a or b |
        | --- | --- | --- | --- |
        True | True | True | 只要其中一個是 True 都會是 True |
        True | False | True |同上|
        False | True | True |同上|
        False | False | False | a 和 b 都是 False,結果只能是 False|

      • not : 否定的意思

        a not a

        True | False | a 為 True , not a 則相反為 False |
        False | True | a 為 False , not a 則相反為 True |

  5. 函數 Function

    把運算步驟封裝,給予 輸入值 (Input) ,經 Function 處理後,產生 輸出值 (Output)

    https://ithelp.ithome.com.tw/upload/images/20230906/20162038XXjVtIaBaH.png

    每種程式語言都有很多內建的函數,print() 就是一個例子,給他字串就會印在終端機。

    亦可以自建 function,如下:
    function 可帶入 參數 parameter (如下例的 x, y),視為 Input, return 的值為 output。
    不一定要有 return,會視乎 function 是否需要回傳 Output。

    def num_sum(x, y)
    	return x + y
    
    # 會先執行 num_sum() 取得 output,再執行 print() 使結果印在 Console
    print(num_sum(1, 1))
    print(num_sum(2, 3))
    

    Output:

    2
    5
    

    應用 Function,可提高運算程式的重用性,可輸入不同的資料,執行相同的 Function 而得到不一樣的結果。

今天先到這裡了,有以上的概念,你已經可以寫出很多運算的程式了,例如:

  1. 寫個 Function 來計算透過身高、體重取得的 BMI 值?
  2. 寫個 Function 來計算三角形,正方形,梯形的面積?
  3. 寫個 Function 來計算台幣換日幣的換算?
  4. 想想生活中有什麼例子,可以寫成程式,協助日常的運算?

另外推薦一個 Python 的練習網站:https://py.checkio.org
它是以遊戲方式,讓你熟悉 Python 的語法。


上一篇
Day 01: 前言
下一篇
Day 03: 程式流程控制
系列文
從 0 開始培育成為自動化測試工程師的學習指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言